The present invention relates to programming of programmable logic devices.
Referring to FIG. 1, programmable logic devices (PLDs) are digital logic circuits that can be programmed to perform a variety of logical functions. A specific logical function is programmed into a programmable logic device by a user. The user may subsequently overwrite the initial logical function with a new logical function. To that end, a programmable logic device 10 includes a set of configurable logic blocks 12 and a control block 14. A programming pattern 16 is programmed into the configurable logic blocks 12 through an external programming apparatus 18. The external programming apparatus 18 known in the art that generates an appropriate set of programmable voltages. External programming apparatus 18 facilitates providing accurate information regarding the parameters required to program configurable logic blocks 12 to obtain the desired functional operation of the programmable logic device 10. As is well known in the art external programming apparatus 18 provides configurable logic blocks with a designated voltage for a predetermined interval of time during the programming process. This results in configurable logic blocks 12 providing a desired functional operation of programmable logic device 10. To that end, programming pattern 16 is applied via external programming apparatus 18 to control block 14. Control block 14 generates a multitude of signals that are used to program configurable logic blocks in accordance with programming pattern 16.
An important requirement is to ensure that programmable logic device 10 is programmed to provide the desired functional operation. to that end, programming pattern 16 includes configuration file identification along with the programming pattern. Control block 14 includes silicon programmable logic device identification. This configuration file identification is compared with the silicon programmable logic device identification to determine whether the two match. Where the two are found to match, control block 14 would allow programming of configurable logic blocks 12 to occur in accordance with programming pattern of 16 under control of external programming apparatus 18. Otherwise, were the configuration file identification found not to match the silicon programmable logic device identification programming access to configurable logic blocks 12 would be denied by control block 14. During the programming process typically any configuration file can typically be programmed into the device and any of the resources configurable logic blocks 12 can be used without any ability of logic device 10 manufacturer to restrict certain usage.
A need exist, therefore, to improve programming characteristics of programmable logic devices.